package com.t.plugin_code;

import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class proxyActivity extends AppCompatActivity {


    // 这个activity相当于一个傀儡。通过intent去加载真正的activity。
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        String className = intent.getStringExtra("className");
        try {
            // 得到真正的类对象。
            Class<?> aClass = PluginManager.getInstance().getDexClassLoader().loadClass(className);
            Object pluginActivity = aClass.newInstance();
            if (pluginActivity instanceof PluginInterface) {
                // 插件activity是没有生命周期的，那么怎么能够得到插件activity的生命周期呢？
                // 第一通过反射的方法
                // 第二通过接口的方法。
                PluginInterface pluginInterface = (PluginInterface) pluginActivity;
                pluginInterface.attach(this);
                pluginInterface.onCreate(savedInstanceState);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    //  这个也很关键。
    @Override
    public Resources getResources() {
        return PluginManager.getInstance().getPluginResources();
    }
}
